package com.kehutong.payfees.entity;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

import com.kehutong.common.entity.DataEntity;
import org.coraframework.orm.Entity;
import org.coraframework.orm.annotation.Column;
import org.coraframework.orm.annotation.Table;
import org.coraframework.orm.annotation.UnSave;

import com.kehutong.payfees.enums.CycleType;
import com.kehutong.payfees.enums.GenerateType;
import com.kehutong.payfees.enums.ResultType;

@Table(value = "t_charge_generate", comment="生成缴费", multi = true)
public class ChargeGenerate extends DataEntity {

    private static final long serialVersionUID = 9067748977001583215L;

    protected ChargeGenerate(String id) {
        super(id);
    }

    @Column(comment = "小区编号")
    private String communityNo;

    @Column(comment = "执行时间")
    private LocalDateTime exeDate;

    @Column(comment = "生成类型")
    private GenerateType generateType;

    @Column(comment = "周期类型")
    private CycleType cycleType;

    @Column(comment = "起始日期")
    private LocalDate startDate;

    @Column(comment = "截止日期")
    private LocalDate endDate;

    @Column(comment = "抄表月份")
    private String readMonth;

    @Column(comment = "应付款日")
    private LocalDate shouldPayDate;

    @Column(comment = "经办人员")
    private String operator;

    @Column(comment = "执行结果")
    private ResultType resultType;

    @Column(dbType = "TEXT", comment="房屋ID")
    private List<String> houseIds;

    @UnSave
    private List<String> houseNames;

    @Column(comment = "文件id")
    private String fileId;

    public String getCommunityNo() {
        return communityNo;
    }

    public void setCommunityNo(String communityNo) {
        this.communityNo = communityNo;
    }

    public LocalDateTime getExeDate() {
        return exeDate;
    }

    public void setExeDate(LocalDateTime exeDate) {
        this.exeDate = exeDate;
    }

    public GenerateType getGenerateType() {
        return generateType;
    }

    public void setGenerateType(GenerateType generateType) {
        this.generateType = generateType;
    }

    public CycleType getCycleType() {
        return cycleType;
    }

    public void setCycleType(CycleType cycleType) {
        this.cycleType = cycleType;
    }

    public LocalDate getStartDate() {
        return startDate;
    }

    public void setStartDate(LocalDate startDate) {
        this.startDate = startDate;
    }

    public LocalDate getEndDate() {
        return endDate;
    }

    public void setEndDate(LocalDate endDate) {
        this.endDate = endDate;
    }

    public String getReadMonth() {
        return readMonth;
    }

    public void setReadMonth(String readMonth) {
        this.readMonth = readMonth;
    }

    public LocalDate getShouldPayDate() {
        return shouldPayDate;
    }

    public void setShouldPayDate(LocalDate shouldPayDate) {
        this.shouldPayDate = shouldPayDate;
    }

    public String getOperator() {
        return operator;
    }

    public void setOperator(String operator) {
        this.operator = operator;
    }

    public ResultType getResultType() {
        return resultType;
    }

    public void setResultType(ResultType resultType) {
        this.resultType = resultType;
    }

    public List<String> getHouseIds() {
        return houseIds;
    }

    public void setHouseIds(List<String> houseIds) {
        this.houseIds = houseIds;
    }

    public List<String> getHouseNames() {
        return houseNames;
    }

    public void setHouseNames(List<String> houseNames) {
        this.houseNames = houseNames;
    }

    public String getFileId() {
        return fileId;
    }

    public void setFileId(String fileId) {
        this.fileId = fileId;
    }
}
